/*
 * Calendrier.h
 *
 *  Created on: 16 mai 2012
 *      Author: Alexis FOERSTER
 */

#ifndef CALENDRIER_H_
#define CALENDRIER_H_

#include "Equipe.h"
#include "Journee.h"
#include <QDateTime>
#include <QList>
#include <QSharedPointer>

class Calendrier
{
public:
    Calendrier();
    Calendrier(const QList<QSharedPointer<Journee> > & listeJournees);
    virtual ~Calendrier();

    const QList<QSharedPointer<Journee> > & getListeJournees() const;
    void setListeJournees(const QList<QSharedPointer<Journee> > & listeJournees);

    void clear();
    bool equals(const Calendrier & calendrier);
    bool ajouterJournee(const QSharedPointer<Journee> & journee);
    bool supprimerJournee(const QSharedPointer<Journee> & journee);
    bool modifierJournee(const QSharedPointer<Journee> & journeeOriginale, const QSharedPointer<Journee> & journeeFinale);
    void generer(const QList<QSharedPointer<Equipe> > & listeEquipes, const int & nombreConfrontations, const QDateTime & dateDebut = QDateTime(), const int & nombreJoursEntreJournees = 7);

private:
    QList<QSharedPointer<Journee> > listeJournees;

    bool rechercherEquipeDansJournee(const QSharedPointer<Equipe> & equipe, const QSharedPointer<Journee> & journee);
};

#endif /* CALENDRIER_H_ */
